// import com.alibaba.druid.sql.ast.SQLDataType;
// import com.alibaba.druid.sql.ast.SQLDataTypeImpl;
// import com.alibaba.druid.sql.ast.SQLParameter;
// import com.alibaba.druid.sql.ast.SQLStatement;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../../../ast/SQLDataTypeImpl.h"

class OracleFunctionDataType
    : virtual public SQLDataTypeImpl 
{
public:
  BOOL_ptr isStatic_;
  SQLParameter_list_ptr parameters;

  SQLDataType_ptr returnDataType;

  SQLStatement_ptr block;

  OracleFunctionDataType();
  ~OracleFunctionDataType() {}
  SHAREDOBJECT(OracleFunctionDataType) ;   

  BOOL_ptr isStatic();

  void setStatic(BOOL_ptr aStatic);

  SQLParameter_list_ptr getParameters();

  SQLDataType_ptr getReturnDataType();

  void setReturnDataType(SQLDataType_ptr x);

  SQLObject_ptr clone();

  SQLStatement_ptr getBlock();

  void setBlock(SQLStatement_ptr block);
};
